<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>JJSched User Guide</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
    </head>

    <body>
        <h1>JJSched User Guide</h1>
        <!---header--->
        <p>Welcome to JJSched User Guide. Here you will learn how to use JJSched. If you don't find here
        something in particular, try looking into the <a href="commands.html">command help</a>. Similar
        (if not the same) information can be found in JJSched itself by using the help command.</p>
        <p>Note that <b>you don't need to install anything</b> to use JJSched. You just have to find a
        JJSched server running somewhere and communicate with it. If you'd like to install your own JJSched
        server, you'll want to read the <a href="admin.html">administrator documentation</a>.</p>

        <h2>Introduction</h2>
        JJSched (Java-Jabber-Scheduler) is a simple application that communicates with you and lets you
        schedule some events. When the time of these events comes, it sends you a reminder message.
        It also allows you to subscribe to a group of users and then you'll receive all the events for
        the whole group. This is useful when you need to inform more people about something - for example
        tell the people, who are interrested in receiving such messages, about a new concert in town.

        <h2>Basic usage</h2>
        <h3>Communicating with JJSched</h3>
        Communication with JJSched is done via your favourite Jabber client. This is nice, because that
        means that you don't need any additional software if you want to start using JJSched as an
        ordinary user. You just type a message and send it to JJSched and in a while, you'll receive an
        answer.
        <h3>Registering to JJSched</h3>
        In order to be able to use JJSched, you first need to register. This is done by opening your favourite
        Jabber client and sending a message <i>register me</i> to the jjsched contact.<br />
        Unregistering is similar - just type <i>unregister me</i>
        <h3>Setting the time</h3>
        After registering, you need to check, whether the server has correct information about your time zone.
        To see the time that the server thinks is your current local time, type <i>time me</i>. The server will
        respond to you with some time value. If this value is your local time, then you are ready to start
        using JJSched. However, if this time differs from your local time, you need to adjust your time offset.
        Let's suppose that your local time should be 14.05.1968/12:20:00, but the server responds with
        <i>14.05.1968/13:20:00</i>. This means that your local time should be one hour less. The solution is simple.
        You just type <i>setoffset me "- 1 hours"</i>.<br />
        You can also specify minutes or even seconds: <i>setoffset me "1 hours 30 minutes 45 seconds"</i>
        See <a href="#timediff">timediff</a> help for more info.<br />
        The double quotes around the time difference expression are important, so don't forget them or
        else JJSched won't be able to parse your message.
        <h3>Planning events</h3>
        Now that your time offset is correct, you can try planning events in JJSched for yourself and
        JJSched will inform you about the planned event when the time comes.<br />
        To try this out, type <i>plan at "now + 10 seconds"</i>. Wait for ten seconds and then you will
        receive a message from JJSched, informing you that <i>You have a plan for now without a description!</i><br />
        This message is a default message, since you didn't provide any other message. If you want JJSched
        to tell you for instance that <i>You need to have a break!</i>, you can do this by typing <i>plan at 
        "now + 20 minutes" description "You need to have a break!"</i> and JJSched will remind you of your planned
        break in 20 minutes.

        <h2>Groups</h2>
        <h3>Subscribing to a group</h3>
        This is very simple. Let's say you want to subscribe to a group named "Ultimate group". You just have to
        send this message to JJSched to subscribe to the group: <i>subscribe "Ultimate group"</i>.<br />
        Unsubscriptions are done by sending <i>unsubscribe /groupname/</i>
        <h3>Creating groups</h3>
        To create a group, you need to have the privilege to modify groups. You then just have to type
        <i>group add /name/ /description/</i><br />
        <h3>Modifying or deleting groups</h3>
        Again, to do this, you need to have the privilege to modify groups. Modifying the group is then done by
        using the command <i>group modify /groupspec/ [description /newdescription/] [name /newname/]
        [self-subscription {true|false}]</i> and deleted by <i>group remove /groupspec/</i>
        <h3>Adding users to the group</h3>
        Users can be subscribed to the group in a similar way to the self-subscriptions of the users to groups.
        If you have the privilege to modify this particular group or groups in general, you can use commands
        <i>group subscribe ...</i> and <i>group unsubscribe ...</i> to do this. See <a href="commands.html#group">group</a>
        help in Command list for more info.
        <h3>Planning for groups</h3>
        Planning events for groups is simple. You just have to use the <i>plan</i> command in a similar way
        as were you planning an event for a single user. For more info, see <a href="commands.html#group">group</a>
        help in Command list.

        <h2 id="timespec">Specifying time</h2>
        In the <i>plan</i> command, you need to specify the time of the planned event somehow. This can be
        done in several ways.<br />
        The time specifier consists of three parts:
        <ul>
            <li>Time origin - mandatory</li>
            <li>Positive timediff - optional</li>
            <li>Negative timediff - optional</li>
        </ul>
        The time origin part ends either with the '+' or '-' symbol or at the end of the time specifier string,
        if no timediff is present.<br />
        Positive timediff begins after the '+' sign and negative timediff after the '-' sign.
        <h3>Time origin</h3>
        Time origin is either one of the keywords - "now", "tomorrow", "next week" - or a time expression<br />
        Time expression should be in format "dd.MM.yyyy/HH:mm:ss"<br />
        The year part can be ommited and if so, the current year is presumed.<br />
        The same applies to the whole day part (dd.MM.yyyy/): if ommited, current day is presumed.<br />
        The seconds can be ommited as well and in such case 0 seconds are presumed.
        <h3 id="timediff">Time difference specifiers (timediffs)</h3>
        Timediffs are used in <i>setoffset</i> command and in <i>plan</i> command. They specify difference
        from some time.<br />
        Timediffs contain one or more parts, that consist of an positive non-zero integer followed by one of
        the following: "seconds", "minutes", "hours", "days", "weeks"<br />
        There should always be a space before and after a number.<br /><br />
        Some examples of timediffs:<br />
        <i>5 weeks 3 hours 2 minutes</i><br />
        <i>1 seconds 2 minutes</i><br />
        <i>24 hours</i><br />
        <i>etc...</i><br />
    <!---footer--->
    </body>
</html>